home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / tex / td187src.lzh / MAGICVDI.D < prev    next >
Text File  |  1991-06-08  |  15KB  |  447 lines

  1. (*######################################################################
  2.  
  3.   MAGIC         Modula's  All purpose  GEM  Interface  Cadre
  4.                 ¯         ¯            ¯    ¯          ¯
  5. ########################################################################
  6.  
  7.   VDI           Virtual Device Interface        Interface for Modula-2
  8.  
  9. ########################################################################
  10.   V2.00  17.10.90  Peter Hellinger      Anpassung an neues MagicSys
  11.   V1.02  30.06.90  Peter Hellinger      tCtrlArray wurde auf 255 Elemente
  12.                                         erweitert
  13.   V1.01  18.06.90  Peter Hellinger      Konstanten ergänzt
  14.   V1.00  (C) by    Peter Hellinger
  15. ######################################################################*)
  16.  
  17. DEFINITION MODULE MagicVDI;
  18.  
  19. FROM SYSTEM     IMPORT  ADDRESS;
  20. FROM MagicSys   IMPORT  Nil, Null,
  21.                         Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6, Bit7,
  22.                         Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14, Bit15,
  23.                         LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL, sBITSET,
  24.                         lWORD, lINTEGER, lCARDINAL, lBITSET;
  25.  
  26.  
  27. (*-- VDI-Parameter ---------------------------------------------------*)
  28.  
  29. TYPE    tWorkIn =        ARRAY [0..10]  OF sINTEGER;
  30.         tWorkOut =       ARRAY [0..57]  OF sINTEGER;
  31.         tPxyArray =      ARRAY [0..3]   OF sINTEGER;
  32.         tBigPxyArray =   ARRAY [0..7]   OF sINTEGER;
  33.         tMouseArray =    ARRAY [0..38]  OF sINTEGER;
  34.         tSmallArray =    ARRAY [0..1]   OF sINTEGER;
  35.         tRGBArray =      ARRAY [0..2]   OF sINTEGER;
  36.         tTextAttrArray = ARRAY [0..9]   OF sINTEGER;
  37.         tFontName =      ARRAY [0..31]  OF CHAR;
  38.         tDistanceArray = ARRAY [0..4]   OF sINTEGER;
  39.         tFilmName =      ARRAY [0..124] OF CHAR;
  40.         tFilmIndex =     ARRAY [0..7],[0..1] OF sINTEGER;
  41.         tCtrlArray =     ARRAY [0..255] OF sINTEGER;
  42.  
  43. VAR     VDIControl:     ARRAY [0..11] OF sINTEGER;
  44.         VDIIntIn:       tCtrlArray;
  45.         VDIPtsIn:       tCtrlArray;
  46.         VDIIntOut:      tCtrlArray;
  47.         VDIPtsOut:      tCtrlArray;
  48.  
  49. VAR     VDIPB:          RECORD
  50.                          control: POINTER TO ARRAY [0..11] OF sINTEGER;
  51.                          intin:   POINTER TO tCtrlArray;
  52.                          ptsin:   POINTER TO tCtrlArray;
  53.                          intout:  POINTER TO tCtrlArray;
  54.                          ptsout:  POINTER TO tCtrlArray;
  55.                         END;
  56.  
  57. PROCEDURE VDICall (ctrl0, ctrl1, ctrl3, ctrl5, ctrl6: sINTEGER);
  58.  
  59. PROCEDURE VqGDos(): BOOLEAN;
  60.  
  61.  
  62. (*-- VDI-Attrib ------------------------------------------------------*)
  63.                       
  64.  
  65. CONST   REPLACE =        1;      (* Schreibmodi *)
  66.         TRANSPARENT =    2;
  67.         XOR =            3;
  68.         REVTRANSPARENT = 4;
  69.  
  70. PROCEDURE SetWritemode (handle, mode: sINTEGER): sINTEGER;
  71.  
  72. PROCEDURE SetColor     (handle, index: sINTEGER; VAR rgb: ARRAY OF LOC);
  73.  
  74. CONST   Line =          1;      (* Linienstil *)
  75.         LongDash =      2;
  76.         Dot =           3;
  77.         DashDot =       4;
  78.         Dash =          5;
  79.         DashDotDot =    6;
  80.         User =          7;
  81.  
  82. PROCEDURE SetLinetype      (handle, type: sINTEGER): sINTEGER;
  83.  
  84. PROCEDURE SetUserlinestyle (handle: sINTEGER; style: ARRAY OF LOC);
  85.  
  86. PROCEDURE SetLinewidth     (handle, width: sINTEGER): sINTEGER;
  87.  
  88. PROCEDURE SetLinecolor     (handle, color: sINTEGER): sINTEGER;
  89.  
  90. CONST   Cornerd =       0;      (* Linien-Endtypen *)
  91.         Arrow =         1;
  92.         Rounded =       2;
  93.                       
  94. PROCEDURE SetLineEndstyles (handle, begin, end: sINTEGER);
  95.  
  96. CONST   Point =         1;      (* Markertypen *)
  97.         Plus =          2;
  98.         Star =          3;
  99.         Square =        4;
  100.         Cross =         5;
  101.         Diamond =       6;
  102.  
  103. PROCEDURE SetMarkertype   (handle, type: sINTEGER): sINTEGER;
  104.  
  105. PROCEDURE SetMarkerheight (handle, height: sINTEGER): sINTEGER; 
  106.  
  107. PROCEDURE SetMarkercolor  (handle, index: sINTEGER): sINTEGER;
  108.  
  109. PROCEDURE SetCharheight   (handle, h: sINTEGER; VAR ch, cw, bh, bw: sINTEGER);
  110.  
  111. PROCEDURE SetCharpoints   (handle, h: sINTEGER; VAR ch, cw, bh, bw: sINTEGER): sINTEGER;
  112.  
  113. PROCEDURE SetCharbaseline (handle, angle: sINTEGER): sINTEGER;
  114.  
  115. PROCEDURE SetTextface     (handle, font: sINTEGER): sINTEGER;
  116.  
  117. PROCEDURE SetTextcolor    (handle, index: sINTEGER): sINTEGER;
  118.  
  119. CONST   Fat =           Bit0;      (* Text-Effekte *)
  120.         Light =         Bit1;
  121.         Italic =        Bit2;
  122.         Underline =     Bit3;
  123.         Outline =       Bit4;
  124.         Shadowed =      Bit5;
  125.  
  126. PROCEDURE SetTexteffect (handle: sINTEGER; effect: sBITSET): sBITSET;
  127.  
  128. CONST   LeftJust =      0;
  129.         Centerd =       1;
  130.         RightJust =     2;
  131.  
  132. CONST   BaseJust =      0;
  133.         HalfJust =      1;
  134.         AscentJust =    2;
  135.         BottomJust =    3;
  136.         DescentJust =   4;
  137.         TopJust =       5;
  138.  
  139. PROCEDURE SetTextalignment (handle, hin, vin: sINTEGER; VAR hout, vout: sINTEGER);
  140.  
  141. CONST   None =          0;      (* Fülltypen *)
  142.         Full =          1;
  143.         Pattern =       2;
  144.         Hatch =         3;
  145.         UserFill =      4;
  146.  
  147. PROCEDURE SetFillinterior (handle: sINTEGER; index: sINTEGER): sINTEGER;
  148.  
  149. PROCEDURE SetFillstyle (handle, style: sINTEGER): sINTEGER;
  150.  
  151. PROCEDURE SetFillcolor (handle, index: sINTEGER): sINTEGER; 
  152.  
  153. PROCEDURE SetFillperimeter (handle: sINTEGER; border: BOOLEAN): BOOLEAN;
  154.  
  155. PROCEDURE SetUserfillpattern (handle: sINTEGER; VAR pat: ARRAY OF LOC);
  156.  
  157.  
  158. (*-- VDI-Control -----------------------------------------------------*)
  159.  
  160.  
  161. PROCEDURE OpenWorkstation (VAR in: ARRAY OF LOC;
  162.                            VAR handle: sINTEGER;
  163.                            VAR out: ARRAY OF LOC);
  164.  
  165. PROCEDURE CloseWorkstation  (handle: sINTEGER);
  166.  
  167. PROCEDURE OpenVirtual (VAR in: ARRAY OF LOC;
  168.                        VAR handle: sINTEGER;
  169.                        VAR out: ARRAY OF LOC);
  170.  
  171. PROCEDURE CloseVirtual (handle: sINTEGER);
  172.  
  173. PROCEDURE ClearWorkstation (handle: sINTEGER);
  174.  
  175. PROCEDURE UpdateWorkstation (handle: sINTEGER);
  176.  
  177. PROCEDURE LoadFonts (handle, select: sINTEGER): sINTEGER;
  178.  
  179. PROCEDURE UnloadFonts (handle, select: sINTEGER);
  180.  
  181. PROCEDURE SetClipping (handle: sINTEGER; VAR rect: ARRAY OF LOC; do: BOOLEAN);
  182.  
  183.  
  184. (*-- VDI-Escape ------------------------------------------------------*)
  185.  
  186.  
  187. PROCEDURE GetCharcells (handle: sINTEGER; VAR rows, colums: sINTEGER);
  188.  
  189. PROCEDURE ExitAlphamode (handle: sINTEGER);
  190.  
  191. PROCEDURE EnterAlphamode (handle: sINTEGER);
  192.  
  193. PROCEDURE AcursorUp (handle: sINTEGER);
  194.  
  195. PROCEDURE AcursorDown (handle: sINTEGER);
  196.  
  197. PROCEDURE AcursorRight (handle : sINTEGER);
  198.  
  199. PROCEDURE AcursorLeft (handle: sINTEGER);
  200.  
  201. PROCEDURE HomeAcursor (handle: sINTEGER);
  202.  
  203. PROCEDURE EraseEOS (handle: sINTEGER);
  204. (* EOS = End of screen *)
  205.  
  206. PROCEDURE EraseEOL (handle: sINTEGER);
  207. (* EOL = End of line *)
  208.  
  209. PROCEDURE AcursorAddress (handle, row, column: sINTEGER);
  210.  
  211. PROCEDURE CursorText (handle: sINTEGER; string: ARRAY OF CHAR);
  212.  
  213. PROCEDURE ReverseVideoOn (handle: sINTEGER);
  214.  
  215. PROCEDURE ReverseVideoOff (handle: sINTEGER);
  216.  
  217. PROCEDURE InqCursoraddress (handle: sINTEGER; VAR row, column: sINTEGER);
  218.  
  219. PROCEDURE InqTabletstatus (handle: sINTEGER): sINTEGER;
  220.  
  221. PROCEDURE Hardcopy (handle: sINTEGER);
  222.  
  223. PROCEDURE DisplayCursor (handle, x, y: sINTEGER);
  224.  
  225. PROCEDURE RemoveCursor (handle: sINTEGER);
  226.  
  227. PROCEDURE FormAdvance (handle: sINTEGER);
  228.  
  229. PROCEDURE OutputWindow (handle: sINTEGER; VAR pxy: ARRAY OF LOC);
  230.  
  231. PROCEDURE ClearDisplaylist (handle: sINTEGER);
  232.  
  233. PROCEDURE Bitimagefile (handle: sINTEGER; fileName: ARRAY OF CHAR;
  234.                         aspect, scaling, numPts: sINTEGER;
  235.                         VAR pxy: ARRAY OF LOC);
  236.  
  237. PROCEDURE GetPrinterscan(handle: sINTEGER; VAR gSlice, gPage, size, page, div: sINTEGER);
  238.  
  239. PROCEDURE PrintText (handle: sINTEGER; string: ARRAY OF CHAR);
  240.  
  241. PROCEDURE SelectPalette (handle, palette: sINTEGER): sINTEGER;
  242.  
  243. PROCEDURE GenerateTone (handle, freq, time: sINTEGER);
  244.  
  245. PROCEDURE ToneMultiflag (handle, action: sINTEGER);
  246.  
  247. PROCEDURE SetTabl